home *** CD-ROM | disk | FTP | other *** search
- Listing 1 - a class hierarchy that mixes virtual and non-virtual
- overriding
-
- #include <iostream.h>
-
- class B
- {
- public:
- virtual void f(); // virtual
- void g(); // non-virtual
- virtual void h(); // virtual
- void j(); // non-virtual
- };
-
- void B::f() { cout << "B::f()\n"; }
-
- void B::g() { cout << "B::g()\n"; }
-
- void B::h() { cout << "B::h()\n"; }
-
- void B::j() { cout << "B::j()\n"; }
-
- class C : public B
- {
- public:
- void f(); // virtual
- void g(); // non-virtual
- virtual void j(); // virtual
- };
-
- void C::f() { cout << "C::f()\n"; }
-
- void C::g() { cout << "C::g()\n"; }
-
- void C::j() { cout << "C::j()\n"; }
-
- class D : public C
- {
- public:
- void h(); // virtual
- void j(); // virtual
- };
-
- void D::h() { cout << "D::h()\n"; }
-
- void D::j() { cout << "D::j()\n"; }
-